1. Field of the Invention
The present invention is related to data processing systems and more specifically to a high speed, synchronous, binary counter implemented in a field programmable gate array.
2. Prior Art
An in-circuit emulator (ICE) duplicates and imitates the behavior of a chip it emulates by using programming techniques and special machine features to permit the ICE to execute micro code written for the chip that it imitates. Microprocessors each have their own reference clocks that provide timings for internal operations. Data and memory addresses are output to an information interchange bus for each microprocessor. In some configurations, two microprocessor information interchange buses are timing related to two mutually asynchronous reference clocks. To capture and display the operation of this configuration it is desirable that the contents of the two information interchange buses be time aligned so that events on both buses can be displayed in sequential order.
Events appear on the information interchange bus. The arrival times of these events are not synchronized to any single clock. In fact, several agents (microprocessors), each synchronized to a different clock frequency, can output events to the bus. The frequency of operation of each microprocessor can change dynamically, such that no one microprocessor always runs faster than all of the other microprocessors.
A module is provided that creates a "time stamp" for each event on two independently clocked trace buffers so that the events captured in the two buffers may be time-aligned. A high-speed time base counter is needed in this module to align the asynchronous events. This allows software to accurately reproduce and chronologically display the bus events of microprocessors that have multiple, asynchronous buses.
Previous designs of wide counters used carry logic which either limited the maximum speed of the counter or caused inaccurate time stamps when cascading from one stage to the next.
It is therefore an object of this invention to provide a counter that runs accurately at high speeds to align asynchronous events in an in-circuit emulator (ICE) bus trace logic.